home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
LOGIC Apps
/
Logic-APPLE_II_APPS.iso
/
pc
/
LOGIC Apple II 5.25" Library - DOS Part 3
/
DOS078A.dsk
/
UFO.bas
< prev
next >
Wrap
BASIC Source File
|
2012-02-16
|
9KB
|
215 lines
1 REM ***********************
2 REM UFO
3 REM M.WIDMANN
4 REM ***********************
5 REM
90 GOSUB 26000
92 LOMEM: 16400
100 SC = 0:SH = 11: HGR
102 GOSUB 3000: GOSUB 3040
104 XM = 12:YM = 5:XO = 15:YO = 72:SA = 5:FLAG = 0: HOME
120 X = XO +XM
130 IF (X >1) AND (X <235) THEN GOTO 160
140 XM = -1 *XM
150 GOTO 120
160 Y = YO +YM
170 IF (Y >16) AND (Y <110) THEN GOTO 200
180 YM = -1 *YM
190 GOTO 160
200 HCOLOR= 5: GOSUB 1000
211 IF FLAG = 1 THEN GOTO 25000
212 F = PEEK( -16384): POKE -16368,0
213 IF F >127 THEN GOSUB 4500
215 XO = X:YO = Y
216 R = 190 +88 * RND(1)
217 IF INT(R)/3 = INT( INT(R)/3) THEN GOSUB 2000
218 LET A = A +1
219 IF A = 30 THEN GOSUB 3000:A = 0
220 GOTO 120
230 HPLOT X +20,Y +6 TO X,Y -16 TO X +16,Y +4 TO X,Y +26 TO X +20,Y +8 TO X +40,Y +26 TO X +24,Y +4 TO X +40,Y -16 TO X +20,Y +2
1000 HPLOT X,Y TO X +20,Y -10 TO X +40,Y TO X +27,Y -4 TO X +20,Y -2 TO X +13,Y -4 TO X,Y
1010 X = XO:Y = YO: HCOLOR= 4
1020 HPLOT X,Y TO X +20,Y -10 TO X +40,Y TO X +27,Y -4 TO X +20,Y -2 TO X +13,Y -4 TO X,Y
1030 X = X +XM:Y = Y +YM: RETURN
2000 HCOLOR= 1: HPLOT X +20,Y -5 TO R,135
2010 HCOLOR= 4: HPLOT X +20,Y -5 TO R,135
2015 IF R >270 AND R <279 THEN GOTO 24000
2020 IF SA < = 0 THEN GOTO 25100
2021 GOSUB 24500
2022 RETURN
3000 HCOLOR= 6: HPLOT 32,34: HPLOT 268,150: HPLOT 76,83: HPLOT 208,104: HPLOT 260,8: HCOLOR= 3: HPLOT 25,79: HPLOT 111,141: HPLOT 213,27
3010 HCOLOR= 2: HPLOT 1,145 TO 20,135 TO 40,145 TO 70,140 TO 100,155 TO 180,155 TO 200,145 TO 220,145 TO 240,135 TO 260,125 TO 278,132
3020 HCOLOR= 5: HPLOT 260,124 TO 277,130 TO 278,128 TO 261,122
3030 Z = FRE(1): RETURN
3040 HCOLOR= 7: HPLOT 100,155 TO 100,150 TO 115,145 TO 125,145 TO 125,156
3041 HPLOT 125,153 TO 140,153
3042 HPLOT 140,156 TO 140,145 TO 155,145 TO 155,155
3043 HPLOT 155,150 TO 170,150 TO 170,153 TO 180,153 TO 180,156
3044 HPLOT 120,145 TO 120,140 TO 130,140 TO 130,153
3045 HPLOT 135,153 TO 135,138 TO 147,138 TO 147,145
3046 HPLOT 126,140 TO 126,130 TO 140,130 TO 140,138
4000 HCOLOR= 7
4020 RETURN
4500 SH = SH -1: GOSUB 24500
4510 IF SH < = 0 THEN FLAG = 1
5000 HCOLOR= 6: HPLOT 260,123 TO 1,20
5001 HCOLOR= 0: HPLOT 260,123 TO 1,20
5002 VA = (Y -20)/.375
5003 IF X <VA -10 AND X >(VA -60) THEN GOTO 10000
5004 RETURN
6011 XO = 20 +200 * RND(1):YO = 20 +80 * RND(1): GOTO 120
10000 HCOLOR= 0
10110 HPLOT X,Y TO X +20,Y -10 TO X +40,Y TO X +27,Y -4 TO X +20,Y -2 TO X +13,Y -4 TO X,Y
10200 HCOLOR= 3
10210 HPLOT X +20,Y +6 TO X,Y -16 TO X +16,Y +4 TO X,Y +26 TO X +20,Y +8 TO X +40,Y +26 TO X +24,Y +4 TO X +40,Y -16 TO X +20,Y +2
10220 HCOLOR= 0
10230 HPLOT X +20,Y +6 TO X,Y -16 TO X +16,Y +4 TO X,Y +26 TO X +20,Y +8 TO X +40,Y +26 TO X +24,Y +4 TO X +40,Y -16 TO X +20,Y +2
20110 FOR DZ = 1 TO 50 STEP 2
20120 HCOLOR= 5
20130 HPLOT X,Y +DZ: HPLOT X +10,Y +3 +DZ: HPLOT X +20,Y +DZ: HPLOT X,Y +10 +DZ: HPLOT X +18,Y +20 +DZ
20131 HPLOT X +1,Y +DZ: HPLOT X +7,Y +7 +DZ: HPLOT X +13,Y +15 +DZ
20140 HCOLOR= 0
20160 HPLOT X,Y +DZ: HPLOT X +10,Y +3 +DZ: HPLOT X +20,Y +DZ: HPLOT X,Y +10 +DZ: HPLOT X +18,Y +20 +DZ
20161 HPLOT X +1,Y +DZ: HPLOT X +7,Y +7 +DZ: HPLOT X +13,Y +15 +DZ
20170 NEXT DZ
20175 SA = SA -1:SC = SC +1000
20180 IF (X >120) AND (X <140) THEN GOTO 21000
20190 IF (X >110) AND (X <150) THEN GOTO 22000
20200 IF (X >90) AND (X <170) THEN GOTO 23000
20205 IF SA < = 0 THEN GOTO 25100
20210 GOTO 6011
21000 HOME : VTAB 22: INVERSE
21003 PRINT "GOOD SHOT. SAUCER CRASHED INTO CITY HALL. DOWNTOWN IS ON FIRE!!"
21004 NORMAL : FOR DE = 1 TO 3
21020 HCOLOR= 7: HPLOT 120,145 TO 80,110 TO 130,150 TO 120,80 TO 140,145 TO 160,100 TO 145,145 TO 180,130 TO 145,150
21030 HCOLOR= 0: HPLOT 120,145 TO 80,110 TO 130,150 TO 120,80 TO 140,145 TO 160,100 TO 145,145 TO 180,130 TO 145,150
21040 NEXT DE
21050 FOR AA = 1 TO 50
21060 BB = 30 * RND(1)
21070 HCOLOR= 5: HPLOT 135,155 TO 120 +BB,125 +BB
21080 HCOLOR= 0: HPLOT 135,155 TO 120 +BB,125 +BB
21090 NEXT AA
21100 SC = SC +1000
21200 GOSUB 26600: HOME
21999 GOTO 2020
22000 SC = SC +100
22200 HOME : INVERSE : VTAB 22
22210 PRINT "NOT BAD, SAUCER CRASHED INTO CITY. LOTS OF CASUALTIES.....!! "
22220 NORMAL
22240 GOSUB 26600: HOME : GOTO 2020
23000 SC = SC +10
23200 HOME : INVERSE : VTAB 22
23210 PRINT "SUBURBS HEAVILY DAMAGED. LOTS OF CETONIANS WIPED OUT...! "
23220 GOSUB 26600: HOME : NORMAL : GOTO 2020
24000 SH = SH -1: IF SH < = 0 THEN GOTO 25000
24001 PRINT "<CTRL-G>": HOME : VTAB 22
24002 PRINT "YOUR GUN HAS BEEN HIT! YOU NOW HAVE ONLY"
24003 FLASH : PRINT SH" ";
24004 NORMAL : PRINT " SHOTS LEFT."
24008 FOR TI = 1 TO 4000: NEXT : HOME : GOTO 2020
24500 HOME : VTAB 21: PRINT "SAUCERS LEFT: ";
24512 PRINT SA" ";
24514 PRINT "SHOTS LEFT:"SH
24516 RETURN
25000 TEXT : HOME : FLASH
25012 PRINT " "
25014 NORMAL : VTAB 11
25016 PRINT "YOUR GUN HAS RUN OUT OF JUICE !"
25018 FLASH : VTAB 20
25020 PRINT " "
25022 NORMAL
25024 FOR TI = 1 TO 18: POKE 768,35: POKE 769,30: CALL 770: POKE 768,180: POKE 769,60: CALL 770: NEXT : HOME
25100 SC = SC +SH
25102 IF SC >4001 AND SA < = 0 THEN GOTO 25120
25103 GR : COLOR= 15
25104 VLIN 10,30 AT 20: HLIN 15,25 AT 15
25105 COLOR= 12
25106 HLIN 5,17 AT 32: HLIN 14,27 AT 31: HLIN 25,35 AT 32
25107 HOME : VTAB 22
25108 PRINT "YOU HAVE FAILED IN YOUR MISSION. MANKIND IS DOOMED!!--SHAME ON YOU--"
25109 GOTO 27000
25120 SC = SC -5000: IF SC >500 THEN GOTO 25200
25132 TEXT : HOME : VTAB 10
25134 PRINT "YOUR PERFORMANCE WAS POOR. THE CITY IS STILL THRIVING."
25136 GOTO 27000
25200 IF SC >1900 THEN GOTO 25300
25210 TEXT : HOME : VTAB 10
25212 PRINT "YOUR PERFORMANCE WAS GOOD. IT WILL TAKE YEARS TO REBUILD CETA TOWN."
25214 GOTO 27000
25300 IF SC >4000 THEN GOTO 25400
25320 TEXT : HOME : VTAB 10
25322 PRINT "YOUR PERFORMANCE WAS VERY GOOD. IT WILL TAKE CENTURIES TO REBUILD CETA TOWN"
25324 GOTO 27000
25400 HGR
25402 FOR X = 1 TO 4
25404 HCOLOR= 1: HPLOT 1,1
25406 CALL 62454: HCOLOR= 3: HPLOT 1,1: CALL 62454
25407 NEXT
25408 HCOLOR= 5
25410 HPLOT 60,80 TO 140,40 TO 220,80 TO 160,70 TO 140,80 TO 120,70 TO 60,80
25412 HCOLOR= 1
25414 HPLOT 95,65 TO 140,50 TO 185,65
25416 HOME : VTAB 22
25418 PRINT "CONGRATULATIONS, YOU WIN THE GOLDEN SAUCER. --PERFECT SCORE--"
25420 GOTO 27000
26000 REM DISPLAY,TEXT,SOUNDPOKE
26001 DATA 173,48,192,136,208,5,206,1,3,240,9,202,208,245,174,0,3,76,2,3,96,0,0
26002 FOR DA = 1 TO 23
26004 DS = 769 +DA
26006 READ DD: POKE DS,DD: NEXT
26020 GR
26030 COLOR= 8
26040 HLIN 8,12 AT 14: HLIN 10,14 AT 13: HLIN 12,26 AT 12
26050 COLOR= 9
26060 HLIN 14,24 AT 11: HLIN 28,32 AT 15: HLIN 6,10 AT 15
26062 COLOR= 8
26064 HLIN 16,22 AT 10: HLIN 24,28 AT 13: HLIN 26,30 AT 14
26066 COLOR= 0
26068 PLOT 17,11: PLOT 19,11: PLOT 21,11: PLOT 15,11: PLOT 23,11
26070 COLOR= 13
26072 PLOT 19,13: PLOT 17,9: PLOT 21,9
26074 COLOR= 1
26076 HLIN 7,9 AT 22: HLIN 11,13 AT 22: HLIN 15,17 AT 22: HLIN 19,21 AT 22: HLIN 28,30 AT 22: HLIN 7,9 AT 28: HLIN 11,13 AT 28: HLIN 28,30 AT 28
26078 VLIN 23,27 AT 7: VLIN 23,27 AT 11: VLIN 23,28 AT 16: VLIN 23,28 AT 19: VLIN 23,28 AT 21: VLIN 24,27 AT 30
26080 PLOT 12,25: PLOT 20,25: PLOT 24,25: PLOT 25,25: PLOT 28,23: PLOT 28,24: PLOT 28,27: PLOT 29,24
26082 GOSUB 26500
26084 TEXT : HOME
26086 PRINT "****************************************"
26088 PRINT : PRINT
26090 PRINT "YOU HAVE CRASH-LANDED ON CETA-5"
26091 PRINT "THE YEAR IS 2280."
26092 PRINT "TWO YEARS AGO THE COUNCIL OF TERRA,THE"
26093 PRINT "GOUVERNING BODY OF THE STELLAR UNION"
26094 PRINT "HAS DECIDED TO LAUNCH AN INVASION OF"
26095 PRINT "CETA-5.THE WAR IS NOW REACHING A"
26096 PRINT "CRITICAL STAGE.CETATOWN IS THE ONLY"
26097 PRINT "CITY LEFT ON THIS PLANET,BUT THE ENTIRE"
26098 PRINT "INVASION-FORCE HAS BEEN WIPED OUT...!"
26099 PRINT "YOU ARE NOW THE ONLY INVADER LEFT."
26100 GOTO 26200
26101 PRINT "YOU MANAGED TO POSITION YOUR PHOTON-"
26102 PRINT "GUN JUST OUTSIDE THE CITY."
26103 PRINT "THE ENEMY HAS ONLY FIVE SAUCERS LEFT"
26104 PRINT "TO DEFEND THE CITY. IT IS YOUR TASK TO"
26105 PRINT "DESTROY THE SAUCERS AS WELL AS THE CITY."
26106 PRINT "SINCE YOU HAVE ONLY 11 SHOTS LEFT IN"
26107 PRINT " YOUR GUN, YOU MUST ATTEMPT TO HIT THE"
26108 PRINT "SAUCERS JUST ABOVE THE CITY IN ORDER TO"
26109 PRINT " CAUSE MAXIMUM DAMAGE."
26110 PRINT "(TO FIRE GUN HIT ANY KEY)"
26111 PRINT : PRINT : PRINT "****************************************"
26112 PRINT : PRINT "HIT SPACE BAR TO START THE GAME."
26113 F = PEEK( -16384): POKE -16368,0
26114 IF F >127 THEN GOTO 26116
26115 GOTO 26113
26116 HOME : GOSUB 26600: RETURN
26200 PRINT : PRINT : PRINT "***************************************"
26202 PRINT : PRINT "HIT ANY KEY TO CONTINUE.
26204 F = PEEK( -16384): POKE -16368,0
26206 IF F >127 THEN GOTO 26208
26207 GOTO 26204
26208 HOME : GOTO 26101
26500 DATA 52,250,63,250,69,50,76,50,84,50,52,250,63,150
26502 FOR A = 1 TO 7: POKE 768,104: POKE 769,25: CALL 770: READ F: READ D: POKE 768,F: POKE 769,D: CALL 770: NEXT : RESTORE : RETURN
26600 FOR T = 1 TO 30: POKE 768,30 +200 * RND(1): POKE 769,30: CALL 770: NEXT : RETURN
27000 Z = FRE(1): VTAB 24: FOR TI = 1 TO 50 STEP 2: POKE 768,50 +TI: POKE 769,22: CALL 7